﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fast.Framework.Interfaces
{

    /// <summary>
    /// 查询建造者接口类
    /// </summary>
    public interface IQueryBuilder
    {

        /// <summary>
        /// 表名称
        /// </summary>
        string TableName { get; set; }

        /// <summary>
        /// 不同
        /// </summary>
        bool Distinct { get; set; }

        /// <summary>
        /// 列
        /// </summary>
        string Columns { get; set; }

        /// <summary>
        /// 条件
        /// </summary>
        List<string> Where { get; }

        /// <summary>
        /// 连接
        /// </summary>
        List<string> Join { get; }

        /// <summary>
        /// 分组
        /// </summary>
        string Group { get; set; }

        /// <summary>
        /// 有
        /// </summary>
        List<string> Having { get; }

        /// <summary>
        /// 排序
        /// </summary>
        List<string> Order { get; }

        /// <summary>
        /// 连
        /// </summary>
        List<string> Union { get; }

        /// <summary>
        /// 全连
        /// </summary>
        List<string> UnionAll { get; }

        /// <summary>
        /// 参数
        /// </summary>
        Dictionary<string, object> Parameters { get; }
    }
}
